

// 函数的类型

// 函数的创建方式 (普通js的写法)
// 1. 命名函数
// function add(a,b){
//     return a + b;
// }

// 2. 匿名函数（函数表达式）
// let sum = function(a,b){
//     return a + b;
// }

// 通过ts对函数添加类型限制

// 命名函数 => 一个函数有输入和输出，要在 TypeScript 中对其进行约束，需要把输入和输出都考虑到，其中函数声明的类型定义较简单

// function add(a:number,b:number):number{
//     return a + b;
// }

// function add(a:number,b:number):void{  // 函数没有设置返回值
// }

// 匿名函数 

// 此写法:只对等号右侧的匿名函数进行了类型定义，而等号左边的 mySum，是通过赋值操作进行类型推论而推断出来的 => 如果需要我们手动给 mySum 添加类型,更准确
// let sum = function(a:number,b:number):number{
//     return a + b;
// }

// 升级版   => 分别给变量和函数添加类型限制
// let sum:(a:number,b:number)=>number = function(a:number,b:number):number{
//     return a + b;
// }
// sum(10,20);



// (2) 接口定义函数的形状 (函数也是一个特殊的对象)

interface AddFn {
    (a:number,b:number):number
}

let sum:AddFn = function(a:number,b:number):number{
    return a + b;
}
sum(10,20);












export default 7;